'''
[:] 是 python 中的切片 语法

nums2=[1,2,3,4]
nums2_copy = nums2[:]

nums2[:] 的表示的意思是 从 头切到尾 切一刀 得到一个新列表
他会复制所有元素 生成一个全新的列表对象


'''

def intersect(nums1, nums2):
    result = []
    nums1_copy = nums1[:]
    
    for num in nums2:
        if num in nums1_copy:
            result.append(num)
            nums1_copy.remove(num)  ## 按照元素去删除
    return result


'''
使用 哈希表(字典) 统计频次

from collections import Counter
Python 标准库 专门用于统计元素出现的次数
nums = [1, 2, 2, 3, 3, 3]
count = Counter(nums)
print(count)
print(count[1])  ## 还可以取出 某个元素出现的次数

result = [1]
#result.append([2,2])  >>> result = [1,[2,2]]

result.extend([2,2]) >>>> result = [1,2,2]

要考虑出现的次数
'''
from collections import Counter
def intersect(nums1, nums2):
    ## 统计每个列表中 每个元素出现的次数
    counter1 = Counter(nums1)
    counter2 = Counter(nums2)
    
    result = []
    for num in counter1:
        if num in counter2:
            min_num = min(counter1[num],counter2[num])  ## 取出这个元素中 出现的最小次数
            result.extend(num * min_num)
    return result 
            
    
    
    